Site redirection

ABSTRACT

A site redirection system and corresponding methods for redirecting a user from a requested site to a target site is provided. When a user navigates to a site on which the redirection system is implemented, the site downloads onto the user&#39;s machine client-side redirection logic. The client-side redirection logic collects the machine&#39;s configuration information and passes the collected configuration information to the site. On the site, server-side redirection logic uses the received configuration information to determine a target URL based on the configuration information passed by the client-side redirection logic. The server-side redirection logic then passes the target URL to the client-side redirection logic where the final redirection occurs.

BACKGROUND

The proliferation of computers and the maturing of the Internet and theWorld Wide Web (“web”) have resulted in the web increasingly becoming amedium used to deliver software, such as application programs andoperating system programs, and updates to the software to consumers.Indeed, many software providers are delivering their software, includingupdates to the software, to their consumers over the web.

Software providers typically release different versions of software viaversions of corresponding software packages. The software and any futureupdates to the software are provided via a web site, and the softwaretypically includes “hard-coded” entry points (e.g., hard-coded URLs)which allow users of the software to connect to the web site in order tobecome aware of and receive updates to the software. For example,MICROSOFT provides a WINDOWS Update site that provides updates for aparticular version or versions of the WINDOWS operating system softwareand WINDOWS-based hardware. Each version of the WINDOWS operating systemprovides an entry point, such as a WINDOWS Update shortcut in a “Start”menu, into its appropriate WINDOWS Update site. To receive updates, auser can access the site addressed by the entry point (e.g., clicking onthe “WINDOWS Update” icon that is provided on the “Start” menu). Thisnavigates the user to a site that is appropriate for the version of thesoftware (e.g., operating system) that is currently installed on theuser's computer system. When the user is at the site, the site scans theuser's computer system and tells the user which updates apply to theuser's software and hardware. The user can then choose the updates thatthe user wants to install and how to install them. At the appropriatetime, the site (e.g., the server) informs an update agent executing onthe user's computer system of the user's selected updates, and instructsthe update agent to install the selected updates. The update agent theninteracts with the site, and the web services to install the userselected updates. The update agent is typically provided with thesoftware package and is installed and executed on the computer systemalong with the software.

Unfortunately, delivering software packages and updates to softwarepackages in this manner is limited by the hard-coded entry pointsincluded in the software package. Once the hard-coded URL is specifiedin software, it cannot be easily changed. Thus, the software provider islimited or restricted to providing updates to a version of the softwarepackage through the site that is addressed by the hard-coded entry pointin the software. Likewise, a specific version of the software is onlyable to receive updates through the site addressed by the hard-codedentry point in the software.

SUMMARY

A site redirection system and corresponding methods for redirecting auser from a requested site to a target site is provided. When a usernavigates to a site on which the redirection system is implemented, thesite downloads onto the user's machine client-side redirection logic.The client-side redirection logic collects the machine's configurationinformation and passes the collected configuration information to thesite. On the site, server-side redirection logic uses the receivedconfiguration information to determine a target URL based on theconfiguration information passed by the client-side redirection logic.The server-side redirection logic then passes the target URL to theclient-side redirection logic where the final redirection occurs.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating components of a site redirectionsystem, according to some embodiments.

FIGS. 2A and 2B illustrate selected contents of an example redirect URLfile, according to some embodiments.

FIG. 3 is diagram illustrating the flow of information between a clientmachine and a site, according to some embodiments.

FIG. 4 is a flow diagram that illustrates the processing of theclient-side redirection logic and server-side redirection logic,according to some embodiments.

DETAILED DESCRIPTION

A site redirection system and corresponding methods for redirecting auser from a requested site (also referred to interchangeably herein as a“web site”) to a target site is provided. The redirection system may beimplemented on a site or multiple sites. For example, an organization,such as a software provider, can implement the redirection system on oneor more of the organization's sites in order to redirect usersnavigating to any one of these sites to a target or destination sitemore appropriate for the user.

In some embodiments, when a user executes a browser program on his orher computer system (also referred to interchangeably herein as a“machine” or “client machine”) and navigates to one of theorganization's sites on which the redirection system is implemented, thesite downloads onto the user's machine client-side redirection logic.The client-side redirection logic is the starting point for redirection,and executes on the user's machine to collect and store the machine'sconfiguration information, such as, by way of example, informationregarding the operating system (OS) that is executing on the machine(e.g., version, service pack, etc.), the processor (CPU) that isexecuting on the machine, the browser program executing on the machine(e.g., version), localization information (e.g., language) of themachine, etc. The client-side redirection logic passes the collectedconfiguration information to the site. On the site, server-sideredirection logic uses the received configuration information parse aredirect URL file. The redirect URL file contains logic that theserver-side redirection logic parses or “drills-down” using theconfiguration information passed by the client-side redirection logic todetermine a target uniform resource locator (URL). The server-sideredirection logic then passes the target URL to the client-sideredirection logic on the user's machine. If the target URL is the URL ofthe site (i.e., the site navigated to by the user), the server-sideredirection logic can inform the client-side redirection logic that theuser is at the appropriate site and there is no need to redirect theuser. Upon receiving the target URL, the client-side redirection logicredirects the user (e.g., the user's browser program) to the sitecorresponding to or addressed by the target URL.

Many software providers and other organizations include a clientprogram, such as an update agent, as part of a software product orpackage as explained above. In some embodiments, where such a user agentis installed and executing on the user's machine, information regardingor related to the update agent can also used in determining the targetURL. For example, the client-side redirection logic can collect as partof the machine's configuration information, information regarding orrelated to the update agent, such as, by way of example, the version ofthe update agent, the build of the update agent, an opt-in status thatindicates whether the user has elected or opted to receive contentprovided on another of the organization's sites, etc. The client-sideredirection logic passes the collected configuration information to theserver-side redirection logic on the site. The server-side redirectionlogic uses the received configuration information parse the redirect URLlogic to determine a target URL, which it then passes to the client-sideredirection logic where the final redirection occurs.

Regarding the opt-in status, the update agent is typically configured tointeract with a single site. For example, the update agent may beconfigured to interact with a site that belongs to the organization thatprovided the software product which included the update agent. Theorganization uses this site to provide content (e.g., information andproducts, including updates) related to the software product. The opt-instatus is an indication that the user has elected to receive content(e.g., notifications and updates of products and services) that isoffered through another site belonging to the organization that providedthe software product. For example, the user may have navigated to one ofthe other sites provided by the organization (i.e., a site other thanthe site that is configured within the update agent) and made anelection (i.e., opted-in) to receive content through this site. Inresponse, this site provides the update agent on the user's machine anotification of the user's opt-in decision. The update agent on theuser's machine can record the user's election to receive content throughanother site, and provide the opt-in status information to theclient-side redirection logic when requested.

In some embodiments, the server-side redirection logic uses theconfiguration information in a predetermined sequence, one item ofinformation at a time, to parse the redirect URL logic as far as it can.For example, the configuration information may indicate that the user isrunning WINDOWS XP, service pack SP2, is using an x86 processor, and isconfigured for English localization. In this instance, the server-sideredirection logic may parse the redirect URL logic first for the WINDOWSXP node. If the WINDOWS XP node is found, the server-side redirectionlogic can then parse within the WINDOWS XP node for the Englishlocalization node. If English localization node is found, theserver-side redirection logic can then parse within the Englishlocalization node that is within the WINDOWS XP node for the x86processor node. If x86 processor node is found, the server-sideredirection logic can then parse within the x86 processor node that iswithin the English localization node that is within the WINDOWS XP nodefor the service pack SP2 node. Each node in the redirect URL logic has acorresponding target URL. The server-side redirection logic parses theredirect URL logic in this manner until a node corresponding to an itemof configuration information is not found. The target URL passed to theclient-side redirection logic is the target URL that corresponds to thelast node found in the redirect URL logic. For example, in the exampleabove, if the x86 processor node is not found in the redirect URL logic,then the target URL corresponding to the English localization nodewithin the WINDOWS XP node is the target URL that is passed to theclient-side redirection logic. In the instance where all nodes are foundin the redirect URL logic, then the target URL corresponding to the lastnode is the target URL that is passed to the client-side redirectionlogic. In the instance where the first node searched for is not found inthe redirect URL logic, then a default URL may be passed as the targetURL to the client-side redirection logic.

One skilled in the art will appreciate that many variations of theconfiguration information used to determine a target URL are possible.For example, the client-side redirection logic may not collect all ofthe configuration information listed above, or may collect additionalconfiguration information than that listed above. Moreover, theserver-side redirection logic may not utilize all of the configurationinformation provided by the client-side redirection logic to determine atarget URL. One skilled in the art will also appreciate that manyvariations of the order in which the items of configuration informationare used to parse the redirect URL logic are possible.

FIG. 1 is a block diagram illustrating components of a site redirectionsystem, according to some embodiments. As depicted, a client machine 102and a web site 104 are each coupled to a network 106. The client machinecomprises a browser 108 and an update agent 110. The web site comprisesa default page 112 which includes client-side redirection logic 114, aplurality of web pages 116 a-n, server-side redirection logic 118, and aredirect URL file 120. Only one client machine and web site are shown inFIG. 1 for simplicity and one skilled in the art will appreciate thatthere may be multiple client machines and multiple web sites in the siteredirection system. As used herein, the terms “connected,” “coupled,” orany variant thereof, means any connection or coupling, either direct orindirect, between two or more elements; the coupling or connectionbetween the elements can be physical, logical, or a combination thereof.

The client machine is used by a user to navigate to the site and mayinclude any type of computing device, such as a personal digitalassistant, a cell phone, a personal computer, and so on. The browser isa software application that is executed and used to locate and navigateto web sites and to display web pages provided by the web sites. Theupdate agent is a client application that facilitates interaction withthe web site to for example, receive one or more products/servicesprovided by the web site. For example, if the web site provides softwareproducts, updates and revisions to the software products, andinformation regarding the software products, the update agent mayfacilitate installation of one or more of the products, updates andrevisions, and information onto the client machine.

The web site is a location on the World Wide Web, and is provided byorganizations such as software providers, product providers, and so on.The default page is a home page of the web site, and is the firstdocument that users see when users enter the web site. The client-sideredirection logic is provided as part of, or with, the default page, andcontains the logic to gather or obtain the configuration information onthe client machine. In some embodiments, the client-side redirectionlogic can be implemented using MICROSOFT JSCRIPT, which is a scriptinglanguage that can be “plugged in” to an application, such as MICROSOFT'sInternet Explorer (IE) browser program. For example, where the browserprogram on the client machine is IE and the client-side redirectionlogic is implemented using JSCRIPT, the client-side redirection logiccan obtain some or all of the configuration information by parsing auser agent string that is provided by IE. The IE user agent stringincludes information regarding the OS executing on the client machine,the language configured on the client machine, the IE applicationrunning on the machine, etc. Where an update agent is present on theclient machine, the client-side redirection logic queries the updateagent for configuration information related to, and which can beprovided by the update agent, such as the version of the update agent,the build of the update agent, etc. In some embodiments, the client-sideredirection logic may be implemented as an ACTIVEX control that can bedownloaded onto the client machine as part of the default page andexecuted by the browser on the client machine. The client-sideredirection logic implemented as an ACTIVEX control may obtain theinformation by requesting the information from one or more otherprograms, such as the OS, which are running on the client machine. Instill other embodiments, the client-side redirection logic may beimplemented using other technologies, frameworks or programminglanguages that are suitable for downloading onto the client machine andsharing information with other programs running on the client machine.

The web pages are the documents that contain the content provided on theweb site. The server-side redirection logic contains the logic thatdetermines a target URL by parsing the redirect URL file using the data(i.e., the configuration information) provided by the client-sideredirection logic, and which passes the target URL to the client-sideredirection logic. In some embodiments, the server-side redirectionlogic can be implemented as an active server page on the web site. As isgenerally known, an active server page is a dynamically created web pagethat is provided to a browser program, for example, running on theclient machine, in response to the browser program requesting the activeserver page. For example, where the browser program on the clientmachine is IE, the client-side redirection logic is implemented usingJSCRIPT, and the server-side redirection logic is implemented as anactive server page, the client-side redirection logic can pass theconfiguration information to the server-side redirection logic via an“xmlpost” operation, which causes the server-side redirection logic toreturn the target URL to the client-side redirection logic. One skilledin the art will appreciate that other programming languages andtechniques may be used to implement the server-side redirection logic.

The redirect URL file contains the logic that is parsed by theserver-side redirection logic to determine a target URL. In someembodiments, the redirect URL file can be implemented using extensiblemarkup language (XML). XML allows for the creation of customized tags,thus enabling the definition, transmission, validation, andinterpretation of data between applications. The redirect URL file isfurther described below.

In general terms, the network is a communications link that facilitatesthe transfer of electronic content between, for example, the attachedclient machine and web site. In some embodiments, the network includesthe Internet. It will be appreciated that the network may be comprisedof one or more other types of networks, such as a local area network, awide area network, a point-to-point dial-up connection, and the like.

The computing device on which the site redirection system is implementedmay include a central processing unit, memory, input devices (e.g.,keyboard and pointing devices), output devices (e.g., display devices),and storage devices (e.g., disk drives). The memory and storage devicesare computer-readable media that may contain instructions that implementthe site redirection system. In addition, the data structures andmessage structures may be stored or transmitted via a data transmissionmedium, such as a signal on a communications link. Various communicationlinks may be used, such as the Internet, a local area network, a widearea network, a point-to-point dial-up connection, a cell phone network,and so on.

Embodiments of the site redirection system may be implemented in variousoperating environments that include personal computers, servercomputers, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, programmable consumer electronics, digitalcameras, network PCs, minicomputers, mainframe computers, distributedcomputing environments that include any of the above systems or devices,and so on. The computer systems may be cell phones, personal digitalassistants, smart phones, personal computers, programmable consumerelectronics, digital cameras, and so on.

The site redirection system may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Typically, the functionality of the program modules may becombined or distributed as desired in various embodiments.

FIGS. 2A and 2B illustrate selected contents of an example redirect URLfile, according to some embodiments. The redirect URL file comprises aURL constants section 202 and a URL parsing logic section 204. The URLconstants section contains the target URLs specified as attributes/valuepairs for various site nodes. For example, and as depicted in FIG. 2,element 206 specifies that the targetURL is“http://v4.windowsupdate.microsoft.com” for the V4url node (site=“4”).Similarly, element 208 specifies that the targetURL is“http://v5.windowsupdate.microsoft.com” for the V5url node (site=“5”),element 210 specifies that the targetURL is“http://update.microsoft.com/windowsupdate” for the V6Live node(site=“6Live”), and element 212 specifies that the targetURL is“http://update.microsoft.com/microsoftupdate” for the V6MULive node(site=“6MULive”).

The URL parsing logic section contains nested node values that areparsed to ultimately determine a target URL. As illustrated by thecontents of the parsing logic section, the nodes are nested in thefollowing sequence: “OS” (OS value); “Processor” (the processor on theuser's client machine); “Lang” (the language configured on the user'sclient machine); “SP” (the service pack value of the installed OS—e.g.Windows XP Service Pack 2); “CurrentSite” (the version of the currentsite that the user has navigated to); “control” (the version of theupdate agent running on the user's client machine); and “MUOptIn” (aBoolean flag that indicates whether the user has opted-in to receivecontent from the MU site). The SP node and the control node each specifya range of values within which to check for a match. For example,assuming the control version is “2367,” the minVersion is specified as“2300,” and the maxVersion is specified as “2400,” this check wouldresult as true, since the actual version (i.e., 2367) falls within thespecified range (i.e., 2300 to 2400). Specifying a range of values alsoallows for open ended checks—e.g. assuming 2300 is the specifiedminVersion and no maxVersion is specified, then any control versionequal to or greater than 2300 would result in a match.

By way of example, and as depicted in FIG. 2, element 214 specifies thatthe TargetSite is “V6Live” for the “5.1” OS node. Within this OS node,element 216 specifies that the TargetSite is “V6Live” for the “x86”processor node, and element 218 specifies that the TargetSite is “V4url”for the “ia64,wow64” processor node. Within the “x86” processor node,element 220 specifies that the TargetSite is “V6Live” for the specifiedLang (i.e., language) node. A “blank” or empty value signifies a“wildcard,” and a blank value for an attribute indicates that theattribute matches all values. Therefore, all languages correspond to theTargetSite “V6Live.” Within the Lang node, element 222 specifies thatthe TargetSite is “V6Live” for the specified range of SP nodes. Becausethe range of values are empty (minMajor=″″ and maxMajor=″″), all SPvalues correspond to the TargetSite “V6Live.” Within the SP node,element 224 specifies that the TargetSite is “V6Live” for the specifiedCurrentSite node. Because the value for the CurrentSite is empty, allCurentSite values correspond to the TargetSite “V6Live.” Within theCurrentSite node, element 226 specifies that the TargetSite is “V6Live”for the “5.8.0” control node having a version that is at least “2284”(within a range minVersion=“2284” and maxVersion=″″). Within the “5.8.0”control node, element 228 specifies that the TargetSite is “ServiceURL”if the MUOptin node is set to “true” (i.e., the user has opted-in to theMU site).

In some embodiments, the items of configuration information are used ina predetermined sequence to parse the nodes in the redirect URL file.Moreover, when an item of configuration information matches a node inthe redirect URL file, the next item of configuration information in thesequence is compared to the nodes within the matching node to determineif there is a match between the next item of configuration informationand any of the nodes. Stated differently, the next item of configurationinformation is checked against the nodes in a nesting level that iswithin the nesting level of the node that successfully matched thepreceding item of configuration information in the sequence. Thismatching process is repeated until the server-side redirection logicfails to find a matching node for an item of configuration information(i.e., the first item of configuration information that fails to match anode in the redirect URL file). When an item of configurationinformation fails to match a node, a target URL corresponding to thelast matching node (the node that matched the item of configurationinformation that preceded in sequence the item of configurationinformation for which a match was not found) is used as the target URL.If all items of information are successfully matched by nodes in theredirect URL file, then a target URL corresponding to the last node thatis matched is used as the target URL.

By way of an example of parsing the nodes in the example redirect URLfile to determine a target URL, the configuration information mayindicate the following: OS=5.1; language=en; processor=x86; SP=1;CurrentSite=v4; and control=5.7.xxxx. To determine a target URL usingthis configuration information, the server-side redirection logic mayparse the redirect URL file above first for the OS node. In this case,the OS is 5.1, therefore, the server-side redirection logic falls intothe OS node that matches 5.1 (element 214). Next, the server-sideredirection logic drills down into the matching OS node looking to matchthe processor node. In this case, there is a match for processor=x86,therefore, the server-side redirection logic falls into the Processornode that matches x86 (element 216). Next, the server-side redirectionlogic drills down into the matching processor node looking to match theLang node. Because the Lang node is present with a blank value, the Langnode matches any value, including en. Therefore, there is a match forlanguage=en and the server-side redirection logic falls into the Langnode that matches en (element 220). Next, the server-side redirectionlogic drills down into the matching Lang node looking to match the SPnode. The SP node specifies a range of values, and the server-sideredirection logic looks for a range that includes a value of 1 for theSP. There is one SP node specified within the matching Lang node, andthe specified SP node has a blank value for the range limits (i.e.,minMajor=″″ and maxMajor=″″). Because the SP node has a blank value forthe range limits, it is a mach for SP=1, and the server-side redirectionlogic falls into the SP node that matches 1 (element 222). Next, theserver-side redirection logic drills down into the matching SP nodelooking to match the CurrentSite node. Because the CurrentSite node ispresent with a blank value, the CurrentSite node matches any value,including v4. Therefore, there is a match for CurrentSite=v4 and theserver-side redirection logic falls into the CurrentSite node thatmatches v4 (element 224). Next, the server-side redirection logic drillsdown into the matching CurrentSite node looking to match the controlnode. In this example, the server-side redirection logic is not able tofind a control node that matches control=5.7.xxxx. Failing to find amatch, the server-side redirection logic falls back up to the previousmatching CurrentSite node (element 224) and uses that node's TargetSiteURL (i.e., V6Live). The server-side redirection logic determines fromthe URL constants section that node V6Live corresponds to TargetURLhttp://update.microsoft.com/windowsupdate.

One skilled in the art will appreciate that one or more of theaforementioned nodes may not be specified within any particular nestingof the nodes in the redirect URL file, for example, as illustrated bythe nesting of the nodes within the “ia64,wow64” processor node inelement 218. One skilled in the art will also appreciate that othernodes corresponding to additional configuration information may bespecified in the redirect URL file. One skilled in the art will furtherappreciate that a different sequential order for using the items ofconfiguration information and/or a different nesting order for the nodesspecified in the redirect URL file may be used. For example, theserver-side redirection logic may first try to match the processor valueinstead of the OS value. As another example, the Processor node may benested within the Lang node.

FIG. 3 is diagram illustrating the flow of information between a clientmachine and a site, according to some embodiments. By way of example, auser may execute a browser program on the client machine and request toaccess (e.g., navigate to) the site (stage 1). In response, the sitedownloads onto the client machine the client-side redirection logic aspart of the site's default page (stage 2). In some instances, the site'sdefault page and the client-side redirection logic may already be on theclient machine, for example, as a result of the user previouslyaccessing the site. The client-side redirection logic executes on theclient machine and obtains the configuration information (i.e.,information regarding the client machine's configuration) (stage 3). Theclient-side redirection logic passes the obtained configurationinformation to the site (stage 4). Server-side redirection logic on thesite uses the configuration information to determine a target URL (stage5). The server-side redirection logic provides the client-sideredirection logic the target URL (stage 6). The client-side redirectionlogic performs the final redirection based on the target URL (stage 7).For example, if the current site is not the site corresponding to thetarget URL, the client-side redirection logic redirects the user to thesite corresponding to the target URL. Otherwise, if the current site isthe site that corresponds to the target URL, the client-side redirectionlogic does not redirect the user (the user is already at the sitecorresponding to the target URL).

FIG. 4 is a flow diagram that illustrates the processing of theclient-side redirection logic and server-side redirection logic,according to some embodiments. By way of example, a user may have usedan IE browser executing on a client machine to navigate to a site, andthe site may have downloaded the client-side redirection logicimplemented on the client machine. In block 402, the client-sideredirection logic parses a user agent string provided by the IE browserto obtain configuration information (i.e., information regarding theclient machine's configuration). In block 404, the client-sideredirection logic obtains additional configuration information from theupdate agent on the client machine. In block 406, the client-sideredirection logic passes the machine configuration information to theserver-side redirection logic. In block 408, the server-side redirectionlogic uses the machine configuration information to parse the redirectURL file to determine a target URL. In block 410, the server-sideredirection logic passes the target URL to the client-side redirectionlogic. In block 412, the client-side redirection logic redirects theuser to a site corresponding to the target URL.

One skilled in the art will appreciate that, for this and otherprocesses and methods disclosed herein, the functions performed in theprocesses and methods may be implemented in differing order.Furthermore, the outlined steps are only exemplary, and some of thesteps may be optional, combined with fewer steps, or expanded intoadditional steps.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A method in a computer system having a memory and a processor forredirecting a client based on a configuration of the client, the methodcomprising: at a web site, the web site being separate from the clientand storing server-side redirection logic, storing redirect URL logiccomprising a set of nested nodes each corresponding to an item ofconfiguration information, wherein each node has at least one associatedvalue and an associated URL, receiving from the client a request toaccess a first page of the web site, the request specifying a first URLcorresponding to the first page of the web site, when it is determinedthat client-side redirection logic is not installed on the client,sending the client the client-side redirection logic, the client-sideredirection logic for collecting configuration information of the clientand sending the collected configuration information to the web site,obtaining configuration information sent from the client, theconfiguration information having been collected at the client by theclient-side redirection logic and containing a plurality of items havingvalues corresponding to a current configuration of the client, executingthe server-side redirection logic to determine whether the obtainedconfiguration information matches an ordered sequence of the set ofnested nodes that includes a first matched node that is not nestedwithin another node, each sequence of nodes corresponding to aconfiguration, wherein the server-side redirection logic is configuredto parse the redirect URL logic in a predetermined sequence based on theordering of the nested nodes of the redirect URL logic, and compareitems of the configuration information to nodes of the redirect URLlogic until either an item of the configuration information fails tomatch a node of the redirect URL logic or all items of the configurationinformation are successfully matched to nodes of the redirect URL logic,when the obtained configuration information does not match an orderedsequence of the set of nested nodes, sending an indication of a defaultURL to the client-side redirection logic, and when the obtainedconfiguration information matches an ordered sequence of the set ofnested nodes, identifying a URL associated with the last matched node ofthe matched ordered sequence, when it is determined that the identifiedURL corresponds to the first URL specified in the request received fromthe client, sending to the client-side redirection logic an indicationthat the first URL corresponds to the configuration of the client, andwhen it is determined that the identified URL does not correspond to thefirst URL specified in the request received from the client, sending theidentified URL to the client to effect the redirecting of the clientbased on the configuration of the client.
 2. The method of claim 1,wherein the web site provides the client a successful response upondetermining that the target URL addresses the web site.
 3. The method ofclaim 1, wherein the client configuration information is obtained byexecuting a client-side redirection logic on the client.
 4. The methodof claim 3, wherein the client-side redirection logic is provided to theclient as part of a default page of the web site.
 5. The method of claim1, wherein the client configuration information comprises an indicationof an operating system executing on the client.
 6. The method of claim1, wherein the client configuration information comprises an indicationof the type of processor on the client.
 7. The method of claim 1,wherein the client configuration information comprises localizationinformation.
 8. The method of claim 1, wherein the client configurationinformation comprises an indication of the version of an update agentexecuting on the client.
 9. The method of claim 1, wherein the clientconfiguration information comprises an indication of a version of theweb site.
 10. The method of claim 1, wherein the client configurationinformation comprises an indication of a version of an update agentexecuting on the client, wherein the update agent is configured toprovide updates provided by a first service.
 11. The method of claim 10,wherein the client configuration information comprises an indication ofwhether the client has opted-in to receive updates provided by a secondservice.
 12. A method in a computer system having a memory and aprocessor for navigating to a site that is separate from the computersystem, the method comprising: sending a request to access a site, therequest including a first URL corresponding to a first page of the site;receiving from the site client-side redirection logic, wherein theclient-side redirection logic is configured to obtain computer systemconfiguration information and further wherein the site is configured todetermine whether obtained configuration information indicates a firstconfiguration or a second configuration of the client based at least inpart on the configuration information passed to the site by the computersystem; with the client-side redirection logic, obtaining computersystem configuration information; with a processor, passing the obtainedconfiguration information to the site; responsive to the sitedetermining that the obtained configuration information corresponds tothe first configuration, receiving from the site an indication that thefirst URL included in the request corresponds to the configuration ofthe client; and responsive to the site determining that the obtainedconfiguration information corresponds to the second configuration,receiving from the site a second URL corresponding to a second page ofthe site as a redirection of the request to access the site to effectthe redirecting of the client based on the configuration of the client.13. The method of claim 12, wherein the target URL addresses the site.14. The method of claim 12, wherein the client-side redirection logic isreceived with a default page of the site.
 15. The method of claim 12,wherein the client-side redirection logic obtains at least one item ofconfiguration information from an update agent executing on the computersystem.
 16. The method of claim 12, wherein the client-side redirectionlogic obtains at least one item of configuration information from a useragent string.
 17. A computer-readable storage medium containinginstructions that, when executed by a computer having a memory and aprocessor, cause the computer to perform a method for redirecting aclient, the method comprising: receiving redirect URL logic comprising aset of nested nodes, each node corresponding to an item of configurationinformation and having at least one associated value and an associatedURL; receiving at the web site, from a client, a request specifying afirst URL of a first page of the web site, the client being separatefrom the web site; in response to receiving the request at the web site,sending the client client-side redirection logic, the client-sideredirection logic configured to install on the client and obtainconfiguration information about the client, the client-side redirectionlogic also configured to send the web site the obtained configurationinformation; receiving at the web site, client configuration informationfrom the client-side logic installed on the client; at the web site,comparing items of the client configuration information to nodes of theredirect URL logic until either an item of the configuration informationfails to match a node of the redirect URL logic or each item of theconfiguration information is successfully matched to a node; in responseto determining that the URL associated with the last node matched to anitem of the configuration information corresponds to the configurationof the client, sending to the client an indication that the first URL ofthe first page of the website specified in the received requestcorresponds to the configuration of the client; and in response todetermining that the URL associated with the last node matched to anitem of the configuration information does not correspond to theconfiguration of the client, sending to the client the URL associatedwith the last node matched to an item of the configuration information,such that the client is redirected based on the received clientconfiguration information.
 18. The computer-readable storage medium ofclaim 17, wherein the client-side redirection logic is sent to theclient with a default page of the web site.
 19. The computer-readablestorage medium of claim 18, wherein the target URL is determined by aredirect page on the web site.
 20. The computer-readable storage mediumof claim 17, wherein at least one node is associated with a range ofvalues.